openprinterfandomcom-20200214-history
Forum:Integrated server (network attatched / driverless)
Server Basis Software Side Since this is going to be an open design, I would suggest an Open, Unix-like OS, with Linux being a fairly obvious first choice due to the number of people familiar with it and it's general ease to mod and work the guts of. However, the idea of using something lighter on it's own board is an interesting concept, it would increase cost and technical issues. Possible Linux Distributions Since this is going to be a mostly stand-alone device, requiring as little user input as possible, I would suggest something that is known as stable, so my suggestions are as follows: Debian Easy to use, good support and designed around stability - can easily be run headless, as this system would most likely be run. Slackware Yes, this is a hardcore system, hard to use and has serious dependency issues. But it is one of the most stable distributions and has a good record of being fairly stand-alone once set up. Communicating Software ... Driver software While the connected computers may not need a driver to drive the printer, the inbuilt server will, and as such, we need to draft out what needs to be controlled and to what level, as well as if we are going to have swappable parts with different functions - maybe make the driver a bit more module based? Needs to control At least one axis Paper feed driver At least one printhead Ink feed RGB transcoding into CYMK Possible extras Second Axis Five or six printheads Possible scalpel blade for cutting designs out? Paper sensor Different printhead designs Hardware Are we planning to go down the embedded route? Single Board Computer (SBC)? Or something more like an old Pentium 3 we have lying about somewhere? Further more, what interfaces do we need on the hardware? Embedded Route Discus Single Board Computers Single board computers are cheep, relatively easy to use and not exactly power hungry. Most importantly, they are small. Since this project, by it's design, should not need anything majorlly heavy, with the board only needing to process the data at the speed that the printer can print, and transform it into basic vectors and commands (OK, maybe a fair amount of work), this does not need to be a high speed processor and 10GB of RAM - but it will need storage space for the files to be read from and trans-coded to, with a decent through-put speed, and with this being networked as well, I would suggest having at least 2GB of memory free for this purpose. To this end, there are several small SBCs available with the required I/O functions of (at least) USB and Network, for example: http://www.gumstix.com produce a set of SBCs with add-on boards that could conform to the project's needs http://www.thelinuxstamp.com also has a similar device, and would not have the need for add-on boards as it already has a flash card slot, USB port and network port built in Old Machines Picked up from the scrapyard or found in your attic, or even ebay, old computers are cheep and versatile. However, they have a tenancy to be big, power hungry leviathan with bad tempers and worse drivers. However, they are cheep, will almost certainly have the needed ports ore be able to be outfitted with them and are available in large numbers - however they are nowhere near open source. Interfaces We need to at least: Connect with the users computer Connect to the printer It would be preferable if we could have both set up as I/O (input/output) to allow for users to receive ready and error messages, and for the printer to send error messages to the server. Input For connection to the client machines, it was suggested that a network could be used, so a network port is a possibility. Another option may be some form of two-way USB memory stick that files could be dropped onto and taken off automatically by the server, and WIFI is always a possibility. So, possible input ports include: USB RJ45 Network port WIFI connection Output For connection to the printer, there is going to be a set data stream to a number of parts, so Serial connections may be in order, as they are fairly easy to control. However, serial has died on most PC motherboards, and as such, USB is a more viable option, although it is harder to code for. So, possible output ports include: USB Serial